﻿#ifndef WRWORKGuiConfigPROVIDER_H
#define WRWORKGuiConfigPROVIDER_H

#include "../WRGlobal.h"
#include "../../WRSoft-Utility/Runtime/WRAppService.h"

#include <QDomElement>

//工作界面配置提供者类型标识 {CCDBB19A-E886-43E1-BCA6-0572C4A030EF}
#define WRWorkGuiConfigProviderType QUuid(0xccdbb19a, 0xe886, 0x43e1, 0xbc, 0xa6, 0x5, 0x72, 0xc4, 0xa0, 0x30, 0xef)

//工作界面文件配置提供者类标识 {9E3F9E9B-3409-4B59-B6DA-59389CA0C92C}
#define WRWorkGuiFileConfigProviderClass QUuid(0x9e3f9e9b, 0x3409, 0x4b59, 0xb6, 0xda, 0x59, 0x38, 0x9c, 0xa0, 0xc9, 0x2c)
//工作界面文件配置提供者字符数组 WRWorkGuiFileConfigProvider
#define WRWorkGuiFileConfigProviderStrArr  {'W', 'R', 'W', 'o', 'r', 'k', 'G', 'u', 'i', 'F', 'i', 'l', 'e', 'C', 'o', 'n', 'f', 'i', 'g', 'P', 'r', 'o', 'v', 'i', 'd', 'e', 'r'}
//工作界面文件配置提供者字符个数
#define WRWorkGuiFileConfigProviderStrLen  27

//工作界面直接配置提供者类标识 {14359948-0A9C-4A92-B175-8FC5A55623FE}
#define WRWorkGuiDirectConfigProviderClass QUuid(0x14359948, 0xa9c, 0x4a92, 0xb1, 0x75, 0x8f, 0xc5, 0xa5, 0x56, 0x23, 0xfe)
//工作界面直接配置提供者字符数据 WRWorkGuiDirectConfigProvider
#define WRWorkGuiDirectConfigProviderStrArr  {'W', 'R', 'W', 'o', 'r', 'k', 'G', 'u', 'i', 'D', 'i', 'r', 'e', 'c', 't', 'C', 'o', 'n', 'f', 'i', 'g', 'P', 'r', 'o', 'v', 'i', 'd', 'e', 'r'}
//工作界面直接配置提供者字符个数
#define WRWorkGuiDirectConfigProviderStrLen  29

namespace WRTypes
{
    //获取工作界面配置提供者类型。
    WRSOFT_GUIAPP_WORKING_COMMON_API WRType* workGuiConfigProvider(void);
}

//表示工作界面配置提供者。
class WRSOFT_GUIAPP_WORKING_COMMON_CLASS WRWorkGuiConfigProvider : public WRAppService
{
private:
    //禁用复制构造函数和赋值操作符。
    Q_DISABLE_COPY(WRWorkGuiConfigProvider)

protected:
    //初始化工作界面配置提供者。
    inline WRWorkGuiConfigProvider(void)
    {
        //add code here
    }
    //释放当前对象所占用的相关资源。
    ~WRWorkGuiConfigProvider(void)
    {
        //add code here
    }

public:
    //获取对象类型。
    WRType* type(void) const;
    //获取配置内容。
    virtual QDomElement content(void) = 0;
};


#endif // WRWORKGuiConfigPROVIDER_H
